home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / AMReminder / AMReminderDoc.c < prev    next >
Encoding:
Text File  |  1998-10-29  |  1.8 KB  |  116 lines  |  [TEXT/CWIE]

  1. // AMReminderDoc.c -- document-level functions
  2.  
  3. #include <Types.h>
  4. #include <Events.h>
  5. #include <Menus.h>
  6. #include <stdlib.h>
  7.  
  8. #include "Globals.h"
  9. #include "ResourceDefs.h"
  10. #include "Dispatcher.h"
  11. #include "Miscellany.h"
  12. #include "AMReminderEngine.h"
  13.  
  14. #include "DDocData.h"
  15. #include "MainWindow.h"
  16. #include "AMReminderDoc.h"
  17.  
  18. static    AMReminderEngine*    GetEngine    (AMDoc*        self);
  19.  
  20.  
  21. //----------
  22. AMReminderDoc*        NewAMReminderDoc ()
  23. {
  24.     AMReminderDoc*        doc;
  25.  
  26.     doc = (AMReminderDoc*)malloc (sizeof (AMReminderDoc));
  27.     AMReminderDoc_Init (doc);
  28.     SetClassID (doc, classAMReminderDoc);
  29.  
  30.     return doc;
  31. }
  32.  
  33. //----------
  34. void    DeleteDoc (
  35.     AMDoc*        doc)
  36. {
  37.     AMReminderDoc_Free ((AMReminderDoc*)doc);
  38.     free (doc);
  39. }
  40.  
  41. //----------
  42. void    AMReminderDoc_Init (
  43.     AMReminderDoc*        self)
  44. {
  45.     ((AMDoc*)self)->mEngine = (AMEngine*) NewAMReminderEngine ();
  46.  
  47.     self->mMainWindowPtr = nil;
  48. }
  49.  
  50. //----------
  51. void    AMReminderDoc_Free (
  52.     AMReminderDoc*        self)
  53. {
  54. }
  55.  
  56. //----------
  57. AMReminderEngine*        GetEngine (
  58.     AMDoc*        self)
  59. {
  60.     return (AMReminderEngine*) (self->mEngine);
  61. }
  62.  
  63. //----------
  64. void    OpenWindows (
  65.     AMDoc*        self)
  66. {
  67.     AMReminderEngine*        engine = GetEngine (self);
  68.  
  69.     // replace this code to get data from someplace useful
  70.  
  71.     MainWindow_Create (self, GetDocData (engine));
  72. }
  73.  
  74. //----------
  75. Boolean        WouldCloseDoc (
  76.     AMDoc*        doc,
  77.     WindowPtr    inWindPtr)
  78. {
  79.     AMReminderDoc*        self = (AMReminderDoc*) doc;
  80.     short        numOpen = 0;
  81.  
  82.     if (self->mMainWindowPtr != nil)        numOpen++;
  83.  
  84.     return (numOpen <= 1);
  85. }
  86.  
  87. //----------
  88. Boolean        DoDocCommand (
  89.     AMDoc*        self,
  90.     long        inCommand)
  91. {
  92.     Boolean        result = true;
  93.  
  94.     switch (inCommand) {
  95.         case cmdSave:
  96.                 DoSave (self);
  97.             break;
  98.         case cmdSaveAs:
  99.                 DoSaveAs (self);
  100.             break;
  101.         case cmdRevert:
  102.                 DoRevert (self);
  103.             break;
  104.         case cmdPageSetup:
  105.                 DoPageSetup (self);
  106.             break;
  107.         case cmdPrint:
  108.                 DoPrint (self);
  109.             break;
  110.  
  111.         default:
  112.                 result = false;
  113.     } // switch
  114.     return result;
  115. }
  116.